package app

import (
	"fmt"
	"log"
	"os"

	"github.com/spf13/viper"
)

type App struct {
	Port int `yaml:"port" json:"port"`
}
type MySQL struct {
	Host     string `yaml:"host" json:"host"`
	User     string `yaml:"user" json:"user"`
	Password string `yaml:"password" json:"password"`
	Port     int    `yaml:"port" json:"port"`
	Database string `yaml:"database" json:"database"`
}
type config struct {
	Port  int   `yaml:"port" json:"port"`
	App   App   `yaml:"app" json:"app"`
	MySQL MySQL `yaml:"mysql" json:"mysql"`
}

func Config() config {
	//导入配置文件
	viper.SetConfigType("yaml")
	pwd, _ := os.Getwd()
	viper.SetConfigFile(pwd + "/config/config.yml")
	//读取配置文件
	err := viper.ReadInConfig()
	if err != nil {
		fmt.Println(err.Error())
	}
	var _config *config
	//将配置文件读到结构体中
	err = viper.Unmarshal(&_config)
	if err != nil {
		// log.Error("")
		log.Fatalln("config.yml 配置项目解析出错。", err.Error())
		os.Exit(2)
	}

	return *_config
}
